import sys
import pandas as pd
import numpy as np

def calculate_metrics(csv_file):
    # 读取并预处理数据
    df = pd.read_csv(csv_file, parse_dates=['日期'], index_col='日期').sort_index()
    df = df[~df.index.duplicated(keep='first')]  # 去重保留第一条记录
    
    # 计算总收益率（从初始到最新）
    total_return = (df['点数'].iloc[-1] / df['点数'].iloc[0]) - 1
    
    # 最新单期收益率（最新日期相对前一日）
    last_return = df['点数'].pct_change().iloc[-1]  # 自动处理时间序列顺序
    
    # 计算年化波动率（基于对数收益率）
    df['log_returns'] = np.log(df['点数'] / df['点数'].shift(1))
    annual_volatility = df['log_returns'].std() * np.sqrt(52)  # 年化因子日√ 252 周52 月12
    
    # 格式化输出, 名字 点数 最新单期收益率 总收益率 年化波动率
    print(f"{csv_file}: {df['点数'].iloc[-1]} {last_return:.2%} {total_return:.2%} {annual_volatility:.2%}")


calculate_metrics(sys.argv[1])
